//
// Created by 高森森 on 2022/2/17.
//

#ifndef LEETCODE_SOLUTION58_H
#define LEETCODE_SOLUTION58_H
#include<iostream>
using namespace std;

#include <vector>
#include <numeric>
#include <algorithm>

class Solution58 {
public:
    int earliestFullBloom(vector<int>& plantTime, vector<int>& growTime) {
        vector<int>order(plantTime.size());
        iota(order.begin(),order.end(),0);
        //使用lambd自定义排序行排序
        //捕获外部作用域中所有变量，并作为引用在函数体中使用（按引用捕获）
        sort(order.begin(),order.end(),[&](int i,int j){
            return growTime[i]>growTime[j];
        });
        int ans=0;
        int endtime=0;
        for(int i:order){
            endtime+=plantTime[i];
            ans=max(ans,endtime+growTime[i]);
        }
        return ans;
    }
};


#endif //LEETCODE_SOLUTION58_H
